
struct ListData
{
   void init();
   bool operator==(ListData& comData);
   void operator=(ListData* );
   void show();

   int a;
   float b;
};


class LinkedNode
{
   public:
   LinkedNode* prior;
   LinkedNode* next;
   ListData data;
};


class LinkedList   :public LinkedNode     //Doubly Circular Linked List
{
   public:   
   LinkedList();       //init list
   bool Ifempty();
   ~LinkedList();      //destroy list
   void ClearList();
   int GetLength();
   ListData* GetElem(int location);
   ListData GetElemCpy(int location);
   int FindElem(ListData& elem);  //return the location number in list.you can replace it by iterator in future
   void Insert(ListData& elem,int location);
   void Delet(int location);
   void PushBack(ListData& elem);
   void PushFront(ListData& elem);
   void ShowData();


   private:
     int length;
};

